Exemple de serveur de discussionL'exemple de code suivant met en oeuvre un serveur de discussion très simple. Un client de discussion peut se connecter au serveur de discussion, lequel écoute sur le numéro de port 1234. Le serveur répond par un message de bienvenue et attend une ligne d'entrée du client. Le client entre du texte et le transmet au serveur qui affiche le texte et laisse l'utilisateur sur l'ordinateur serveur entrer une ligne de texte, que l'ordinateur client affiche. Ces allers-retours se poursuivent jusqu'à ce que le serveur ou l'ordinateur client entre le texte "au revoir". function chatServer() { var tcp = new Socket; // écoute sur le port 1234 writeln ("Serveur de discussion écoutant sur le port 1234"); if (tcp.listen (1234)) { for (;;) { // vérifie la présence d'une nouvelle connexion var connection = tcp.poll(); if (connection != null) { writeln ("Connexion de " + connection.host); // une nouvelle connexion est présente, affiche le message de bienvenue et discute // jusqu'à ce que le client mette fin à la session connection.writeln ("Bienvenue à un petit bavardage !"); chat (connection); connection.writeln ("*** Au revoir ***"); connection.close(); delete connection; writeln ("Connexion terminée"); } } } } function chatClient() { var connection = new Socket; // se connecte au serveur exemple if (connection.open ("remote-pc.corp.adobe.com:1234")) { // puis, discute avec le serveur chat (connection); connection.close(); delete connection; } } function chat (c) { // sélectionne un long dépassement de délai c.timeout=1000; while (true) { // obtient une ligne et la reproduit writeln (c.read()); // arrête si la connexion est interrompue if (!c.connected) break; // lit une ligne de texte write ("chat : "); var text = readln(); if (text == "au revoir") // arrête la conversation si l'utilisateur a entré "au revoir" break; else // sinon, transmet au serveur c.writeln (text); } } |